Existing technologies for stylizing markup language documents have many limitations. With some existing stylization techniques, a source document to be stylized is required to adhere to a particular standard, such as extensible markup language (XML). Another limitation of existing stylization techniques is a lack of intrinsic versioning. That is, a source document to be stylized can not guarantee compatibility with a particular version of a style to be applied to the document. Intrinsically declarative relationships between styles and content are also typically lacking in existing stylization techniques. That is, procedure code is typically required to match portions of a source document with a particular style and to prevent subsequent styles from being applied to the specific portions of the source document. Furthermore, source documents typically cannot limit the affects of a stylization. In other words, a stylization can be designed to modify everything within a source document, without allowing the source to protect any areas. As a result, it is important that styles to be applied to a source document originate from a trusted source.
Another drawback to existing stylization techniques is the fact that there is no built-in support to persist a stylized document to be re-served providing the source file does not change. Rather, the source document is stylized each time the source document is requested by a client. Furthermore, with some existing stylization techniques, the code that is used to apply the stylization is not easily viewable, and is typically not easily modifiable.
Another limitation to existing stylization techniques is that the modifications that can be made to a source document are limited. That is, many existing techniques cannot be used to move or rearrange the underlying source markup. Additionally, some existing techniques require that the source document be explicitly tagged with class/style names at the point where the modification is to be applied. In other words, a source must include, be aware of, and explicitly assign sections of itself to one or more classes of styles. Furthermore, if a particular style is to be applied to or removed from several related source documents, each source document must be independently updated. Finally, with existing stylization techniques that are implemented on the client in a client-server environment, all of the style information for a particular source document is sent down to the client to be used when the web page is rendered. Rarely is all of the needed style information included in a single HTTP round trip to the server. Furthermore, style information that is irrelevant to the requested web page may also be transmitted.